﻿<?php  if (!defined("_ECRIRE_INC_VERSION")) return;
// If at list one function from this file is already defined we won't continue 
if (!function_exists('select_reference_to_array')) {
/**
 * SPIP Plugin Development Kit
 *
 * @author     Aleksey Yaroshchuk (aleksey.yaroshchuk@gmail.com)
 * @license    GNU/GPL
 * @package    plugins
 * @subpackage pdk
 * @category   outils
 * @copyright  (c) Aleksey Yaroshchuk 2011-2012
 * @link       http://www.spip-contrib.net/Developmet-Kit
 * @version    1.0.0
 */

// ------------------------------------------------------------------------

/**
 * Database Functions
 *
 * This file contain functions that will help to work with database
 *
 * @package		plugins
 * @subpackage	pdk
 * @category	outils
 * @author		Aleksey Yaroshchuk (aleksey.yaroshchuk@gmail.com)
 * @link		http://www.spip-contrib.net/Developmet-Kit
 */

// ------------------------------------------------------------------------
/**
 *  Выборка элементов мультиязычного справочника в виде массива. 
 *  В процессе разработки функция была модифицирована, и теперь ее можно использовать не только 
 *  для простого справочника, а и для любой таблицы, чтобы выбрать простой ассоциативный массив типа ID=>TITRE
 *  
 *  @param string $table Имя таблицы
 *  @param string $primary_key Имя поля, являющегося первичным ключем таблицы
 *  @param string $titre Имя поля, являющегося текстовым полем справочника (по умолчанию titre)
 *  @param string $lang Язык, для которого выбирать значение поля $titre. По умолчанию берется системное значение.
 *  @param string $where Where condition. Can be string or array - see sql_select()
 *  @param string $group_by Group by expression
 *  @param string $order_by Order by expression
 *  @param bool $supprimer_numero Логическое значение, указывающее нужно ли обрезать номер в начале текстового поля
 * 
 *  @return Array Массив справочника. Индексами массива являются первичные ключи, а элементами - значения поля $titre, выбранные для заданного языка
 */
function select_reference_to_array($table, $primary_key, $titre = 'titre', $lang = null, $where = array(), $group_by = array(), $order_by = array(), $supprimer_numero = false) {
    if (!$lang) $lang = $GLOBALS['spip_lang'];
    $reference = array();
    $select = array($primary_key, sql_multi($titre, $lang));    
    if (empty($order_by)) {
        $select[] = '0+'.$titre.' AS num';
        $order_by = 'num';
    }
    $result = sql_select($select, $table, $where, $group_by, $order_by);
	include_spip('inc/filtres');
    while ($row = sql_fetch($result)){
		if ($supprimer_numero) $row['multi'] = supprimer_numero($row['multi']);
        $reference[intval($row[$primary_key])] = $row['multi'];
    }
    
    return $reference;     
}
// ------------------------------------------------------------------------

// ------------------------------------------------------------------------

// ------------------------------------------------------------------------
}
?>